import { userList, userCount } from '../../../request/api'

const state = {
    userList: [],//管理员列表
    total:0, //总条数
    size: 2,//页面显示的条数
    page: 1,//具体传输那个页面
}

const getters = {
    // 获取管理列表
    getUserList(state) {
        return state.userList;
    },
    //获取总条数
    getCount(state) {
        return state.total
    },
    // 把size传输到组件
    getSize(state) {
        return state.size
    }
}

const mutations = {
    REQ_USERLIST(state, payload) {
        state.userList = payload
    },
    REQ_COUNT(state, payload) {
        state.total = payload
    },
    REQ_PAGE(state, payload) {
        state.page = payload
    }
}

const actions = {
    // 获取列表的行动
    changeUserAction(context) {
        userList({
            size: context.state.size,
            page: context.state.page
        }).then((res) => {
            console.log(res, '管理员列表');
            if (res.code == 200) {
                let list = res.list ? res.list : []
                // 由于删除非第一页，只有最后一天数据的时候出现了bug所以我们要用条件判断去控制
                // 给page-1
                if(context.state.page!=1&&list.length==0){
                    // 重新去修改页码
                    context.dispatch('getUserPageAction',context.state.page-1)
                }
                // 提交一个mutation
                context.commit('REQ_USERLIST', list)
            }
        })
    },
    //封装一个获取总条数行动
    getCountAction({commit}) {
        userCount()
            .then(res => {
                console.log(res, '总条数')
                if (res.code == 200) {
                    commit('REQ_COUNT', res.list[0].total)
                }
            })
    },
    // 封装一个切换页码的行动
    getUserPageAction(context, payload) {
        console.log(context, 'context');
        // 修改page  并且要从新调用列表行动
        context.commit('REQ_PAGE', payload)
        context.dispatch('changeUserAction')
    }
}

export default {
    state,
    getters,
    mutations,
    actions,
    namespaced: true,
}